﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.App.Master.Dao.DailyWorkTemplateDao
 * 类型：       日常工作模版维护画面 数据库操作层
 * 功能说明：   对日常工作模版维护基本表做追加更新删除操作
 * 作者：       章 昕
 * 创建日期：   2007/11/12
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.App.Master.Bean;
using Shpm.App.Input.Bean;


/// <summary>
/// Summary description for DailyWorkTemplateDao
/// </summary>
namespace Shpm.App.Master.Dao
{
    public class DailyWorkTemplateDao : ShpmBaseDao
    {
        public DailyWorkTemplateDao() { }

        // 模版 list
        public const string LIST_WORK_TEMPLATE = "DailyWorkTemplate.ListWorkTemplate";
        public const string LIST_WORK_TEMPLATEID = "DailyWorkTemplate.ListWorkTemplateId";

        // 模版 find
        public const string FIND_WORK_TEMPLATE = "DailyWorkTemplate.FindWorkTemplate";

        // 模版 insert
        public const string INSERT_WORK_TEMPLATE = "DailyWorkTemplate.InsertWorkTemplate";

        // 模版 update
        public const string UPDATE_WORK_TEMPLATE = "DailyWorkTemplate.UpdateWorkTemplate";

        // 模版 delete
        public const string DELETE_WORK_TEMPLATE = "DailyWorkTemplate.DeleteWorkTemplate";

        // 模版项目详细 list
        public const string LIST_WORK_TEMPLATE_ITEMS = "DailyWorkTemplate.ListWorkTemplateItems";

        // 模版项目详细 find
        public const string FIND_WORK_TEMPLATE_ITEM = "DailyWorkTemplate.FindWorkTemplateItem";

        // 模版项目详细 insert
        public const string INSERT_WORK_TEMPLATE_ITEM = "DailyWorkTemplate.InsertWorkTemplateItem";

        // 模版项目详细 update
        public const string UPDATE_WORK_TEMPLATE_ITEM = "DailyWorkTemplate.UpdateWorkTemplateItem";

        // 模版项目详细 delete
        public const string DELETE_WORK_TEMPLATE_ITEM = "DailyWorkTemplate.DeleteWorkTemplateItem";

        // 模版项目详细 delete all
        public const string DELETE_WORK_TEMPLATE_ITEM_ALL = "DailyWorkTemplate.DeleteWorkTemplateItemAll";

        public const string LIST_DUTY_SCHEMA = "DailyWorkTemplate.ListDutySchema";


        // 根据当班人id(employeeid)，当班时间，当班类型检索出具体执行内容
        public const string FIND_EMP_WORK_TEMPLATE_ITEM_ALL = "DailyWorkTemplate.ListEmpWorkTemplateItems";



















        public IList ListWorkTemplate(DailyWorkTemplateBean paramBean)
        {
            return base.QueryForList(LIST_WORK_TEMPLATE, paramBean);
        }

        public IList ListWorkTemplateId(DailyWorkTemplateBean paramBean)
        {
            return base.QueryForList(LIST_WORK_TEMPLATEID, paramBean);
        }

        public DailyWorkTemplateBean FindWorkTemplate(DailyWorkTemplateBean paramBean)
        {
            return (DailyWorkTemplateBean)base.QueryForObject(FIND_WORK_TEMPLATE, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录模版对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 模版 insert 
        */
        public DailyWorkTemplateBean Insert(DailyWorkTemplateBean paramBean)
        {
            paramBean.TemplateId = (int)base.Insert(INSERT_WORK_TEMPLATE, paramBean);
            return paramBean;
        }

        /*
         *名称： Update
         *功能： 更新模版对象。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 模版 update 
        */
        public int Update(DailyWorkTemplateBean paramBean)
        {
            return base.Update(UPDATE_WORK_TEMPLATE, paramBean);
        }

        /*
         *名称： Delete
         *功能： 删除模版对象。
         *参数： paramBean - 删除对象
         *返回： 删除记录数
         *说明： 模版 delete 
        */
        public int Delete(DailyWorkTemplateBean paramBean)
        {
            return base.Delete(DELETE_WORK_TEMPLATE, paramBean);
        }


        public IList ListWorkTemplateItems(DailyWorkTemplateBean paramBean)
        {
            return base.QueryForList(LIST_WORK_TEMPLATE_ITEMS, paramBean);
        }


        public DailyWorkTemplateBean FindWorkTemplateItem(DailyWorkTemplateBean paramBean)
        {
            return (DailyWorkTemplateBean)base.QueryForObject(FIND_WORK_TEMPLATE_ITEM, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录模版项目详细对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 模版项目详细 insert 
        */
        public DailyWorkTemplateBean InsertItem(DailyWorkTemplateBean paramBean)
        {
            paramBean.TemplateItemId = (int)base.Insert(INSERT_WORK_TEMPLATE_ITEM, paramBean);
            return paramBean;
        }

        /*
         *名称： Update
         *功能： 更新模版项目详细对象。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 模版项目详细 update 
        */
        public int UpdateItem(DailyWorkTemplateBean paramBean)
        {
            return base.Update(UPDATE_WORK_TEMPLATE_ITEM, paramBean);
        }

        /*
         *名称： Delete
         *功能： 删除模版项目详细对象。
         *参数： paramBean - 删除对象
         *返回： 删除记录数
         *说明： 模版项目详细 delete 
        */
        public int DeleteItem(DailyWorkTemplateBean paramBean)
        {
            return base.Delete(DELETE_WORK_TEMPLATE_ITEM, paramBean);
        }

        /*
         *名称： Delete
         *功能： 删除模版项目详细对象。
         *参数： paramBean - 删除对象
         *返回： 删除记录数
         *说明： 模版项目详细 delete 
        */
        public int DeleteItemAll(DailyWorkTemplateBean paramBean)
        {
            return base.Delete(DELETE_WORK_TEMPLATE_ITEM_ALL, paramBean);
        }

        public IList ListDutySchema(DailyWorkTemplateBean paramBean)
        {
            return base.QueryForList(LIST_DUTY_SCHEMA, paramBean);
        }

        // delete template transaction
        public void DeleteTemplate(DailyWorkTemplateBean paramBean)
        {
            try
            {
                // 开始事务 
                base.BeginTransaction();

                this.Delete(paramBean);
                this.DeleteItemAll(paramBean);

                // 提交事务
                base.CommitTransaction();

            }
            catch (Exception e)
            {
                // 回滚事务                
                base.RollBackTransaction();
                throw e;
            }            
        }


        public IList FindEmpWorkTemplateItems(DutyInfoBean paramBean)
        {
            return base.QueryForList(FIND_EMP_WORK_TEMPLATE_ITEM_ALL, paramBean);
        }
        
    }
}
